What is table-layout?
The table-layout package is a utility for Node.js that allows for the easy formatting of text into a table structure. It provides a way to organize data in rows and columns, with options for customizing alignment, width, and padding. This package is useful for CLI tools and scripts that need to present data in a structured, readable format.
What are table-layout's main functionalities?
Basic table layout
This feature allows you to create a basic table layout by specifying an array of objects, where each object represents a row in the table. The keys of the object represent column names.
const Table = require('table-layout');
const data = [{ colA: 'row 1 column A', colB: 'row 1 column B' }, { colA: 'row 2 column A', colB: 'row 2 column B' }];
const table = new Table(data);
console.log(table.toString());
Custom column width and wrapping
This feature demonstrates how to customize the width of columns and enable text wrapping. It is useful for controlling the appearance of the table and ensuring that it fits within a specific layout.
const Table = require('table-layout');
const data = [{ name: 'Some really long name that exceeds the default column width', age: '30' }];
const options = { columns: [{ name: 'name', width: 30, nowrap: true }, { name: 'age', width: 10 }] };
const table = new Table(data, options);
console.log(table.toString());
Other packages similar to table-layout
cli-table
cli-table is a similar package that provides functionalities for rendering unicode-aided tables on the command line. Compared to table-layout, cli-table focuses more on the visual styling of the table borders and padding but does not offer as much control over text wrapping and column width.
ascii-table
ascii-table is another package for creating ASCII tables. It allows for quick and easy table generation with minimal configuration. While it's simpler and less feature-rich than table-layout, it's suitable for applications that require basic table functionalities without the need for advanced formatting options.
table-layout
Generates plain-text tables from JSON recordset input (array of objects). Useful for presenting text in column layout or data in table layout in text-based user interfaces. Also available as a command-line tool.
Synopsis
> const Table = require('table-layout')
> const issues = require('./example/issues')
> const table = new Table(issues, { maxWidth: 60 })
> console.log(table.toString())
15134 Coveralls has no source available ndelangen 0
15133 Fixing --preserve-symlinks. phestermcs 0
Enhancing node to exploit.
15131 Question - Confused about NPM's the1mills 0
local installation philosophy
15130 Question - global npm cache ORESoftware 0
directory if user is root?
15127 how to installa gulp fontfacegen aramgreat 0
on Windows 10
15097 Cannot install package from mastertinner 3
tarball out of package.json entry
generated by npm
15067 npm "SELF_SIGNED_CERT_IN_CHAIN" LegendsLyfe 3
error when installing discord.js
with .log
API Reference
Table ⏏
Recordset data in (array of objects), text table out.
Kind: Exported class
new Table(data, [options])
Params
- data
Array.<object>
- input data - [options]
object
- optional settings
- [.maxWidth]
number
- maximum width of layout - [.noWrap]
boolean
- disable wrapping on all columns - [.noTrim]
boolean
- disable line-trimming - [.break]
boolean
- enable word-breaking on all columns - [.columns]
columnOption
- array of column-specific options - [.ignoreEmptyColumns]
boolean
- if set, empty columns or columns containing only whitespace are not rendered. - [.padding]
object
- Padding values to set on each column. Per-column overrides can be set in the options.columns
array.
- [.left]
string
- Defaults to a single space. - [.right]
string
- Defaults to a single space.
Example
> Table = require('table-layout')
> jsonData = [{
col1: 'Some text you wish to read in table layout',
col2: 'And some more text in column two. '
}]
> table = new Table(jsonData, { maxWidth: 30 })
> console.log(table.toString())
Some text you And some more
wish to read text in
in table column two.
layout
table.renderLines() ⇒ Array.<string>
Identical to .toString()
with the exception that the result will be an array of lines, rather than a single, multi-line string.
Kind: instance method of Table
table.toString() ⇒ string
Returns the input data as a text table.
Kind: instance method of Table
Table~columnOption
Kind: inner typedef of Table
Properties
Name | Type | Description |
---|
name | string | column name, must match a property name in the input |
[width] | number | A specific column width. Supply either this or a min and/or max width. |
[minWidth] | number | column min width |
[maxWidth] | number | column max width |
[nowrap] | boolean | disable wrapping for this column |
[break] | boolean | enable word-breaking for this columns |
[padding] | object | padding options |
[padding.left] | string | a string to pad the left of each cell (default: ' ' ) |
[padding.right] | string | a string to pad the right of each cell (default: ' ' ) |
© 2015-19 Lloyd Brookes <75pound@gmail.com>. Documented by jsdoc-to-markdown.